﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestConsole.Practice4
{
    // 실습 목표
    // 반복문 개념 이해하기
    // do while 문 사용하기
    // 종료값 이용 반복 이해하기

    // 문제
    // 한 대학생이 방학 중에 유럽으로 배낭 여행을 가려고 한다. 유럽에서는 우리나라와는 달리
    // 화씨 온도를 사용하고 있다. 여행시 유럽의 날씨에 적합한 옷들을 준비하기 위해 방문하는 
    // 도시들의 평균 온도가 섭씨로 얼마인지 알고 싶다. 먼저 방문하는 도시 이름을 입력하고 
    // 화씨로 된 평균 온도를 입력하면 대응되는 섭씨 온도를 계산해서 출력해야 한다. 다음으로 
    // 계속하기를 원하는지를 물어보고 계속하겠다면 같은 일을 반복한다. 그렇지 않다면 종료한다.
    // do while 문을 사용하라. 이 문제는 실습과제 2.3을 확장한 것으로서 그 과제의 프로그램을 
    // 반복문으로 사용하여 수정하여야 한다.
    public class Practice4_2
    {
        // 모범 출력
        // 방문할 도시 이름을 입력하세요:  북경
        // 방문 도시의 화씨 온도를 입력하세요:    92
        // 대응하는 섭씨 온도 값:  33.33333333333336
        // 계속하기를 원하세요? 그렇다면 y를 아니면 n를 입력하세요:y
        // 방문할 도시 이름을 입력하세요:  파리
        // 방문 도시의 화씨 온도를 입력하세요:    85
        // 대응하는 섭씨 온도 값:  29.44444444444446
        // 계속하기를 원하세요? 그렇다면 y를 아니면 n를 입력하세요:y
        // 방문할 도시 이름을 입력하세요:  로마
        // 방문 도시의 화씨 온도를 입력하세요:    75
        // 대응하는 섭씨 온도 값:  23.88888888888889
        // 계속하기를 원하세요? 그렇다면 y를 아니면 n를 입력하세요:y

        // 주의: 위에서 방문 도시 이름과 화씨 온도 값은 사용자의 입력이다.
        public static void ConvertTemp()
        {
            String city;
            int Farenheitvalue;
            // 여기에 코드를 삽입
            double centigrade;

            // 온도 변환을 계속할지를 결정하는 변수를 선언하고 초기화한다.
            String flag = "y";

            // 사용자에게 방문할 도시이름과 그 도시의 화씨 온도 값을 입력하라고 요청한다.
            // 그리고 입력된 값들을 읽는다. 사용자가 계속하기를 원한다면 이를 반복한다.
            do
            {
                // 사용자로부터 방문할 도시 이름을 입력하라고 요청한다.
                // 그리고 입력된 값을 읽는다.
                Console.Write("방문할 도시 이름을 입력하세요:\t");
                city = Console.ReadLine();

                // 사용자로부터 방문 도시의 화씨 온도 값을 입력하라고 요청한다.
				Console.WriteLine("방문 도시의 화씨 온도를 입력하세요:\t");
                // 그리고 입력된 값들을 읽는다.
                // 여기에 코드를 삽입
				int.TryParse(Console.ReadLine(),out Farenheitvalue);

                // 입력된 화씨 온도에 대응하는 섭씨 온도를 계산한다.
                // 여기에 코드를 삽입
				centigrade = 5d / 9 * (Farenheitvalue - 32);

                // 계산된 섭씨 온도 값을 출력한다.
                // 여기에 코드를 삽입
				Console.WriteLine("대응하는 섭씨 온도 값:\t{0}", centigrade);

                // 사용자가 계속하기를 원하는 지를 예(y) 혹은 아니오(n)로 입력하라고
                // 요청한다. 그리고 입력된 값을 읽는다.
                Console.Write("계속하기를 원하세요? ");
                Console.Write("그렇다면 y를 아니면 n를 입력하세요:");
                flag = Console.ReadLine();
            } while (flag.Equals("y"));
        }
        // 힌트
        // 1. 사용자로부터 방문하는 도시의 평균 온도를 입력하라는 메시지를 화면에 출력한다. 
        //    사용자가 입력한 온도를 Console.ReadLine() 메소드를 이용하여 대응하는 변수에 저장한다.
        // 2. 입력된 화씨 온도에 대응되는 섭씨 온도를 계산하여 출력한다.
        // 3. 다음으로 사용자가 온도 변환을 계속하기를 원하는 지를 'y(yes)' 혹은 'n(no)'로 입력하
        //    라는 메시지를 출력한다. 'y'가 입력되면 지금까지 언급한 과정을 반복한다. 'n'가 입력되
        //    면 반복문 밖으로 나간다.
        // 4. 프로그램의 결과가 맞는지를 확인하기 위해 여러 개의 다른 입력 값들을 사용하여 프로그램을 
        //    철저하게 시험하라.
    }
}
